package javaClassExercise.designPatterns.decoratorModel;

/**
 * Created by lomo.
 *
 * Todo -> Understand More
 */
public class DecoratorTest {
    public static void main(String... args) {
        Sourceable sourceable = new Source();
        //被装饰类Source类的实例对象 -- sourceable --> 装饰类Decorator的操作目标


        Sourceable sourceable1 = new Decorator(sourceable);
        //通过传入一个必选参数(Source类的实例对象)，使得Decorator类内部的source.method方法可以被调用
        sourceable1.method();
        //输出：
        /* 装饰类的方法！！
        被装饰类的方法！
        decorated之后!
        */



        //sourceable.method(); //被装饰类的方法

        //Decorator decorator = new Decorator(sourceable);
        //Decorator类构造函数需要一个Sourceable类的实例作为参数传入进而完成初始化
        //此处传入的初始化对象是 从Source类new的对象，该对象具有一个method方法
        //
        //decorator.method();
        /*
            装饰类的方法！！
            被装饰类的方法！
            decorated之后!
         */

    }
}
